package day17_Inet.demo02_UDP;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

//UDP是不可靠的网络通信,在通信两端个建立一个Socket对象,
//但是两个Socket只是发送数据,接收数据的对象
//Java提供了DatagramSocket类作为Scoket基类来进行UDP通信
/*
UDP发送数据:
创建发送端的Scoket对象(DatagramSocket)
创建数据,并把数据打包
调用DatagramPacket方法send()发送数据
关闭发送端close()

UDP接收数据:
创建接收端的Scoket对象(DatagramSocket)
创建数据包,用于接收数据
调用Scoket对象(DatagramSocket)receice()方法接收数据
解析数据包,在控制台显示 getData()
关闭接收端
 */
//发送hello.UPD到192.16.8.3.172中端口号为8888，
public class Send_UDP {
    public static void main(String[] args) throws Exception {
        //1.创建发送端的Scoket对象(DatagramSocket)
        //new DatagramSocket();
        //2.创建数据,并把数据打包
        //“hello.UPD”.getBytes()
        //new DatagramPacket(byte[] buf, int length, InetAddress address, int port)
        //3.调用DatagramSocket方法发送数据
        //send()
        //4.关闭发送端
        //close()
        DatagramSocket ds = new DatagramSocket(5200);
        String s="hello.UPD";
        byte[] bytes = s.getBytes();
        InetAddress ip = InetAddress.getByName("192.168.3.172");//IP地址
        int port=8888;
        //把数据打包成DatagramPacket对象
        DatagramPacket dp = new DatagramPacket(bytes,0,bytes.length,ip,8888);
        //通过send发送对象到ip指定的设备中
        ds.send(dp);
        ds.close();
    }
}
